package com.zhifei.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhifei.system.domain.EmployeeEntity;
import com.zhifei.system.domain.EmployeeMonthEntity;
import com.zhifei.system.domain.vo.EmployeeMonthExcelVo;
import com.zhifei.system.domain.vo.EmployeeMonthSummaryVo;
import com.zhifei.system.domain.vo.EmployeeMonthVo;
import com.zhifei.system.domain.vo.EmployeeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface EmployeeMonthMapper extends BaseMapper<EmployeeMonthEntity> {

    List<EmployeeMonthVo> pageMonth(Page page, @Param("jobNum")String jobNum, @Param("fullName")String fullName,
                                    @Param("customerName")String customerName, @Param("projectName")String projectName,
                                    @Param("serviceManager")String serviceManager, @Param("recruitHr")String recruitHr,
                                    @Param("monthStartDate")String monthStartDate, @Param("monthEndDate")String monthEndDate,@Param("collectionStartDate")String collectionStartDate, @Param("collectionEndDate")String collectionEndDate);

    List<EmployeeMonthExcelVo> listMonth(@Param("jobNum")String jobNum, @Param("fullName")String fullName,
                                         @Param("customerName")String customerName, @Param("projectName")String projectName,
                                         @Param("serviceManager")String serviceManager, @Param("recruitHr")String recruitHr,
                                         @Param("monthStartDate")String monthStartDate, @Param("monthEndDate")String monthEndDate, @Param("collectionStartDate")String collectionStartDate, @Param("collectionEndDate")String collectionEndDate);

    EmployeeMonthSummaryVo getMonthSummary(@Param("jobNum")String jobNum, @Param("fullName")String fullName,
                                           @Param("customerName")String customerName, @Param("projectName")String projectName,
                                           @Param("serviceManager")String serviceManager, @Param("recruitHr")String recruitHr,
                                           @Param("monthStartDate")String monthStartDate, @Param("monthEndDate")String monthEndDate,@Param("collectionStartDate")String collectionStartDate, @Param("collectionEndDate")String collectionEndDate);

    EmployeeMonthEntity getByJobNumAndMonth(@Param("jobNum")String jobNum, @Param("employeeMonth")String employeeMonth);
}
